package top.hcode.hoj.service.admin.system;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import top.hcode.hoj.pojo.vo.ConfigurationVO;

import java.util.List;

/**
 * (Configuration)表服务接口
 *
 * @author guozhao
 * @since 2025-04-23 09:26:38
 */
public interface ConfigurationService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    ConfigurationVO queryById(Integer id);


    /**
     * 通过ID查询单条数据
     *
     * @param code 配置项编码
     * @return 实例对象
     */
    ConfigurationVO queryByCode(String code);

    /**
     * 分页查询
     *
     * @param configuration 筛选条件
     * @param pageRequest      分页对象
     * @return 查询结果
     */
    Page<ConfigurationVO> queryByPage(ConfigurationVO configuration, PageRequest pageRequest);


    //查询所有
    List<ConfigurationVO> quaryAll(ConfigurationVO configurationVO);

    //批量插入
    int batchInsert(List<ConfigurationVO> configList);


    /**
     * 新增数据
     *
     * @param configuration 实例对象
     * @return 实例对象
     */
    ConfigurationVO insert(ConfigurationVO configuration);

    /**
     * 修改数据
     *
     * @param configuration 实例对象
     * @return 实例对象
     */
    ConfigurationVO update(ConfigurationVO configuration);


    /**
     * 修改数据
     *
     * @param configuration 实例对象
     * @return 实例对象
     */
    ConfigurationVO updateByCode(ConfigurationVO configuration);


    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

}
